public class SimpleJmsHeaderMapper extends java.lang.Object implements JmsHeaderMapper
JmsHeaderMapper
.
This implementation copies JMS API headers (e.g. JMSReplyTo) to and from
Messages
. Any user-defined
properties will also be copied from a JMS Message to a Message, and any
other headers on a Message (beyond the JMS API headers) will likewise
be copied to a JMS Message. Those other headers will be copied to the
general properties of a JMS Message whereas the JMS API headers are passed
to the appropriate setter methods (e.g. setJMSReplyTo).
Constants for the JMS API headers are defined in JmsHeaders
.
Note that most of the JMS headers are read-only: the JMSDestination,
JMSDeliveryMode, JMSExpiration, JMSMessageID, JMSPriority, JMSRedelivered
and JMSTimestamp flags are only copied from a JMS Message. Those
values will not be passed along from a Message to an outbound
JMS Message.
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
inboundPrefix |
private Log |
logger |
private java.lang.String |
outboundPrefix |
private static java.util.Set<java.lang.Class<?>> |
SUPPORTED_PROPERTY_TYPES |
CONTENT_TYPE_PROPERTY
Constructor and Description |
---|
SimpleJmsHeaderMapper() |
Modifier and Type | Method and Description |
---|---|
private java.lang.String |
fromHeaderName(java.lang.String headerName)
Add the outbound prefix if necessary.
|
void |
fromHeaders(MessageHeaders headers,
javax.jms.Message jmsMessage)
Map from the given
MessageHeaders to the specified target message. |
void |
setInboundPrefix(java.lang.String inboundPrefix)
Specify a prefix to be appended to the message header name for any
JMS property that is being mapped into the MessageHeaders.
|
void |
setOutboundPrefix(java.lang.String outboundPrefix)
Specify a prefix to be appended to the JMS property name for any
message header that is being mapped into the JMS Message.
|
private java.lang.String |
toHeaderName(java.lang.String propertyName)
Add the inbound prefix if necessary.
|
MessageHeaders |
toHeaders(javax.jms.Message jmsMessage)
Map from the given target message to abstracted
MessageHeaders . |
private static java.util.Set<java.lang.Class<?>> SUPPORTED_PROPERTY_TYPES
private final Log logger
private java.lang.String inboundPrefix
private java.lang.String outboundPrefix
public void setInboundPrefix(java.lang.String inboundPrefix)
This does not affect the JMS properties covered by the specification/API,
such as JMSCorrelationID, etc. The header names used for mapping such
properties are all defined in our JmsHeaders
.
public void setOutboundPrefix(java.lang.String outboundPrefix)
This does not affect the JMS properties covered by the specification/API,
such as JMSCorrelationID, etc. The header names used for mapping such
properties are all defined in our JmsHeaders
.
public void fromHeaders(MessageHeaders headers, javax.jms.Message jmsMessage)
HeaderMapper
MessageHeaders
to the specified target message.fromHeaders
in interface HeaderMapper<Message>
headers
- the abstracted MessageHeadersjmsMessage
- the native target messagepublic MessageHeaders toHeaders(javax.jms.Message jmsMessage)
HeaderMapper
MessageHeaders
.toHeaders
in interface HeaderMapper<Message>
jmsMessage
- the native target messageprivate java.lang.String fromHeaderName(java.lang.String headerName)
Convert MessageHeaders.CONTENT_TYPE
to content_type for JMS compliance.
private java.lang.String toHeaderName(java.lang.String propertyName)
Convert content_type to MessageHeaders.CONTENT_TYPE
.